/**
 * 日期格式化工具函数
 * @param date - 日期对象或日期字符串
 * @param formatStr - 格式化字符串，默认为'YYYY-MM-DD HH:mm:ss'
 * @returns 格式化后的日期字符串
 */
export function formatDate(date: Date | string, formatStr: string = 'YYYY-MM-DD HH:mm:ss'): string {
  // 新增：处理undefined情况
  if (!date) {
    console.warn('Date is undefined or null');
    return '-';
  }
  const targetDate = typeof date === 'string' ? new Date(date) : date;

  // 处理无效日期
  if (isNaN(targetDate.getTime())) {
    console.error('Invalid date:', date);
    return '';
  }

  const year = targetDate.getFullYear();
  const month = String(targetDate.getMonth() + 1).padStart(2, '0');
  const day = String(targetDate.getDate()).padStart(2, '0');
  const hours = String(targetDate.getHours()).padStart(2, '0');
  const minutes = String(targetDate.getMinutes()).padStart(2, '0');
  const seconds = String(targetDate.getSeconds()).padStart(2, '0');

  // 替换格式化字符串中的占位符
  return formatStr
    .replace('YYYY', year.toString())
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}